package com.sbc.user.service;

import com.sbc.user.pojo.vo.UserLoginReqVo;
import com.sbc.user.pojo.vo.UserLoginRespVo;
import com.sbc.user.pojo.vo.UserRegisterReqVo;
import com.sbc.user.pojo.vo.UserRegisterRespVo;

/**
 * @description: 用户登录接口
 * @author: songbaicheng
 * @create: 2024-02-28 10:01
 **/
public interface UserLoginService {

    /**
     * 用户登录
     *
     * @param userLoginReqVo 用户登录入参
     * @return 用户登录结果
     */
    UserLoginRespVo login(UserLoginReqVo userLoginReqVo);

    /**
     * 用户注册
     *
     * @param userLoginReqVo 用户登录入参
     * @return 用户登录结果
     */
    UserRegisterRespVo register(UserRegisterReqVo userLoginReqVo);

    /**
     * 用户退出登录
     *
     * @param accessToken 用户登录 Token 凭证
     */
    void logout(String accessToken);

    /**
     * 用户名是否存在
     *
     * @param username 用户名
     * @return 用户名是否存在返回结果
     */
    Boolean hasUsername(String username);
}
